Core Data Model iOS অ্যাপে ডেটা সংরক্ষণ এবং ম্যানেজ করার জন্য একটি শক্তিশালী ফ্রেমওয়ার্ক। Core Data ব্যবহার করে ডেটা পার্সিস্ট করা যায়, অর্থাৎ অ্যাপ বন্ধ হওয়ার পরেও ডেটা সংরক্ষিত থাকে। এটি ডেটাবেসের মতো কাজ করে, কিন্তু সরাসরি SQL লেখার প্রয়োজন হয় না। Core Data ব্যবহারের মাধ্যমে অ্যাপের ডেটা ম্যানেজমেন্ট আরও সহজ এবং কার্যকর করা যায়।
Core Data Model তৈরি করার ধাপ
Step ১: Xcode প্রজেক্টে Core Data যুক্ত করা
- নতুন একটি প্রজেক্ট তৈরি করার সময়, "Use Core Data" চেকবক্সটি সিলেক্ট করুন। এটি স্বয়ংক্রিয়ভাবে একটি Core Data Stack যুক্ত করবে।
- যদি আপনি বিদ্যমান প্রজেক্টে Core Data যুক্ত করতে চান, তাহলে File > New > File এ যান এবং Core Data > Data Model সিলেক্ট করুন। ফাইলের নাম দিন (যেমন:
MyAppDataModel) এবং এটি প্রজেক্টে যুক্ত করুন।
Step ২: Data Model ফাইল ওপেন করা
- প্রজেক্ট নেভিগেটরে Data Model ফাইলটি (যেমন:
MyAppDataModel.xcdatamodeld) ওপেন করুন। এখানে আপনি ডেটার স্ট্রাকচার বা Entity ডিজাইন করতে পারবেন। - Core Data Model Editor-এ Entity, Attributes, এবং Relationships যুক্ত করা যাবে।
Step ৩: Entity তৈরি করা
Add Entity বাটনে ক্লিক করে একটি নতুন Entity তৈরি করুন (যেমন: Person)।
Entity সিলেক্ট করে ডানপাশের Attributes Inspector থেকে এর Attributes (প্রপার্টি) যুক্ত করুন।
- name:
name, Type:String - age:
age, Type:Integer 16 - email:
email, Type:String
Step ৪: Relationship এবং Fetch Properties যুক্ত করা (ঐচ্ছিক)
- যদি Entity গুলোর মধ্যে কোনো সম্পর্ক থাকে, তাহলে Relationship সেকশনে গিয়ে সম্পর্ক যোগ করতে পারেন। উদাহরণস্বরূপ, একটি
PersonEntity-এর সাথেAddressEntity-এর সম্পর্ক থাকতে পারে। - Relationship সেটিংসের জন্য:
- Name: Relationship-এর নাম (যেমন:
address). - Destination: অন্য Entity (যেমন:
Address). - Type: One-to-One, One-to-Many, বা Many-to-Many।
- Name: Relationship-এর নাম (যেমন:
Step ৫: Managed Object ক্লাস জেনারেট করা
Core Data Entity-র জন্য Managed Object ক্লাস তৈরি করতে হয় যাতে আপনি সহজেই কোডে ডেটা ম্যানিপুলেট করতে পারেন।
Data Model ফাইলে গিয়ে Editor > Create NSManagedObject Subclass এ ক্লিক করুন।
Entity সিলেক্ট করে Next এ ক্লিক করুন এবং ফাইল জেনারেট করে নিন। Xcode স্বয়ংক্রিয়ভাবে NSManagedObject এর সাবক্লাস তৈরি করে দেবে, যা আপনার Entity-র Attributes এবং Relationships সংজ্ঞায়িত করবে।
উদাহরণ:
import Foundation
import CoreData
@objc(Person)
public class Person: NSManagedObject {
}
extension Person {
@NSManaged public var name: String?
@NSManaged public var age: Int16
@NSManaged public var email: String?
}
Core Data ব্যবহার করে ডেটা সংরক্ষণ, ফেচ, আপডেট, এবং ডিলিট করার উদাহরণ
Step ৬: Data Store তৈরি করা এবং Data Access করা
AppDelegate বা SceneDelegate-এ persistentContainer ব্যবহার করে Core Data Stack সেটআপ করা থাকে, যা আপনি ব্যবহার করতে পারবেন।
let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
Step ৭: ডেটা সংরক্ষণ করা
func savePerson(name: String, age: Int16, email: String) {
let newPerson = Person(context: context)
newPerson.name = name
newPerson.age = age
newPerson.email = email
do {
try context.save()
print("Person saved successfully!")
} catch {
print("Failed to save person: \(error.localizedDescription)")
}
}
Step ৮: ডেটা ফেচ করা
func fetchPersons() -> [Person]? {
let request: NSFetchRequest<Person> = Person.fetchRequest()
do {
let persons = try context.fetch(request)
return persons
} catch {
print("Failed to fetch persons: \(error.localizedDescription)")
return nil
}
}
Step ৯: ডেটা আপডেট করা
func updatePerson(person: Person, newName: String) {
person.name = newName
do {
try context.save()
print("Person updated successfully!")
} catch {
print("Failed to update person: \(error.localizedDescription)")
}
}
Step ১০: ডেটা ডিলিট করা
func deletePerson(person: Person) {
context.delete(person)
do {
try context.save()
print("Person deleted successfully!")
} catch {
print("Failed to delete person: \(error.localizedDescription)")
}
}
উপসংহার
- Core Data Model তৈরি করে ডেটা স্ট্রাকচার সংজ্ঞায়িত করা যায় এবং Entity, Attribute, এবং Relationship সেট করা যায়।
- NSManagedObject Subclass তৈরি করে আপনি সহজেই ডেটা অ্যাক্সেস এবং ম্যানিপুলেট করতে পারবেন।
- Core Data ব্যবহার করে ডেটা সংরক্ষণ, ফেচ, আপডেট, এবং ডিলিট করা সহজ এবং কার্যকর।
এইভাবে Core Data Model এবং এর বিভিন্ন উপাদান ব্যবহারের মাধ্যমে অ্যাপে ডেটা ম্যানেজমেন্ট করা যায়।
Read more